Arranging Objects in Hierarchies  
Return to Introduction  Previous page  Next page
 
Object hierarchies, in which objects are arranged in a tree like structure, help to manage groups of objects belonging together by putting them together under a single parent. The relationship between the objects in a hierarchy tree is also an essential help for building complex animation movements, where parents take along their children with their movements.  
 
Grouping of Objects in Hierarchies
Using object hierarchies you can easily group your objects, e.g., under a special Group Object. This provides a clearer arrangement of objects in the object selection window (child nodes can be hidden) and you can select or de-select a whole group of objects just by clicking on the parent object of that group. For instance, if you have created a car consisting out of several hundreds of objects, simply link them under a Group Object "car". Then, every time you want to move that car, you only need to mark the "car" Group Object and move it to its new destination, all children will follow automatically.  
 
Hierarchical Animation - Child Objects Inherit Movements from their Parents
Hierarchical structures are essential for animating complex movements. Take, for example, an industrial-robot that is assembled out of several different rotatable arms and joints. It is almost impossible to animate this robot if you have to move all the robot's parts to their respective desired positions individually, for every movement of the robot. You could certainly mark all necessary parts in a group and move or rotate them to their final position, but the following problem cannot be solved in this way: If, in an animation, you move a non hierarchical robot arm that is built from several different parts, from one position to another, then every single part follows its own animation-path.  
Simple example:  
 
The arm pictured above should rotate clockwise around itself through 90 degrees from the start position shown in the left picture. The cylinder is used as the center of rotation. The final position is shown in the right illustration. When playing now the animation you can see, that all parts of the robot arm move on straight movement paths from the starting position to the end position, instead of circling around together with the cylinder rotation. In the center picture you see an intermediate position and an undesirable result. Moving on their own paths in the direction of the target position, the objects no longer form a single unit, but instead overlap each other or drift apart.  
This type of problem is easily overcome, however, with help of object hierarchies. Individual objects are arranged hierarchically under other objects and then their movements are dependent on the parent objects. The precise concept looks as follows:  
·Each child object performs all movements of the parent object immediately superior to it, as if it were an integral component of this object.  
·Child objects nevertheless retain their freedom of movement, and therefore can still execute additional movements independent of their parent object.  
In the simple example pictured above it results in the following: The arm and hand, which are subordinate to the cylinder, correctly rotate with the cylinder. However, you could, for example, additionally have the hand execute a rotation about its vertical axis - without it influencing the movement of the parent arm or cylinder.  
 
Use the Select Objects Dialog to Arrange Objects in a Hierarchy
 
In the Select Objects dialog the object hierarchy appears as a tree-structure in which child objects are always linked to their parent object. Each child object can have only one parent object. However, an object can have any number of child objects. This works in exactly the same manner as the tree structure of a file manager with its folders and files. For clarity, you are also able to open or close object nodes via the <+> and <-> buttons to hide or show child objects in the tree structure. A double click on the <+> button opens all child nodes of that parent at the same time.  
 
If an object is hierarchically subordinate to another object, then it performs every action of the parent object. If you mark a parent object for editing then the entire object branch with all its children is also automatically marked. Even if a child object is switched off temporarily in the Select Object dialog it will still be a part of the hierarchy structure and therefore, internally, follows all movements of its parent object. During preparation of an animation you can make use of this feature to accelerate the work flow and to save some time on depiction. Then you could switch on only those objects in the hierarchy that are located prior to the branch and then move, rotate or scale them in the individual keyframes. If you then switch on all subordinate objects again in the Select Objects dialog and start an animation preview, you will see that the objects previously switched off actually all take part in the movements of the root object.  
 
Object hierarchy in combination with camera- and light objects
Even positional light objects and the camera can be part of a hierarchy. For example, a camera that is hierarchically subordinate to an aircraft automatically follows all the movements made by the pilot. This also applies to light sources such as headlights, which are hierarchically subordinate to vehicles. Objects that cannot be moved, such as parallel and ambient lights, as well as the background object, cannot be made part of a hierarchy.  
 
Build Object Hierarchy => Drag and Drop object name
Arranging objects in a hierarchy is as simple as moving files in an ordinary file manager from one folder to another. If you want to subordinate an object or a whole object branch under another, select the relevant object or branch with the left mouse button and hold it down while dragging the object name to the target object. The 'Link' symbol under the mouse pointer indicates if a valid target object is found and you can release the mouse button. Thereupon the selected object or branch becomes hierarchically subordinate to the target object and the new hierarchy tree is drawn.  
 
In the example depicted above you can see how the 'arm_left'-object is dragged and dropped onto the 'body'-object. On the right side you can see the result with the subordinated 'arm-left'-object.  
 
In the example above a whole object branch ('hand_right' with subordinated 'finger_right' objects) is linked to the 'arm_right' object, simply by dragging the 'hand_right' object onto the 'arm_right'-object.  
 
Dismantling object hierarchies
 
The procedure for dismantling an object branch from a hierarchy is exactly the same as previously described in arranging objects under each other, except that, instead of a target object, you drag objects to any empty field in the selection-dialog. The 'Unlink' symbol below the mouse pointer indicates a valid place to drop the object branch. Thereupon the object branch is removed from the hierarchy and placed at the end of the object list once more.  
 
Sorting object branches in the tree-hierarchy
 
You can move root objects up and down to change the order in which the objects are listed in the selection window. No change of the hierarchical tree structure is intended - it's just a sorting operation to clarify the arrangement. Again all you have to do is simply drag a root object branch and drop it on a position between two other root objects. All valid places are indicated by the 'Insert' symbol below the mouse pointer.  
 
Hierarchical Independent Animation
What happens if you subordinate previously animated objects under a hierarchy, that may be also has been animated already? Read the corresponding chapter on animation - Hierarchical Independent Animation.